A product code is a multi-dimensional array of (n,k) linear block code that exploits a simple and relatively efficient method to construct more powerful codes using linear block code structures. FIG. 1 illustrates construction of a two-dimensional block product code, using a k1×k2 array of data to be encoded. In the encoding, each row of k2 data values is augmented to include n2-k2 parity check bits for the data in that row; and each column of k1 data values is augmented to include n1-k1 parity check bits for the data in that column. The (n1k1)×(n2-k2) region at the lower right of this block contains parity check bits for each of the n2-k2 columns above and for each of the n1−k1 rows to the left. Where, for example, a BCH code is used in a 64QAM configuration, k1=k2=57 and n1=n2=63. Because 57=26−6−1, the 7 conventional parity check bits can be replaced by 7 Hamming error check bits using a Hamming single error correction formulation, as discussed in S. B. Wicker, Error Control Systems, Prentice Hall, Englewood Cliffs N.J., 1995, pp. 8-11, 90-94.
In any digital representation of a signal value, the most important bit is the MSB (most significant bit), followed in turn by other bits (MSB-1, MSB-2, . . . , LSB) in the representation sequence. In a conventional transmission of this digital representation, all bits are treated equally in signal coding and decoding for such transmission. This approach is often inefficient, because the bits are not equally affected by noise and other perturbations in the transmission channel and are not equally important. This is especially true where a QAM configuration is used and the higher order bits (MSB, MSB-1, etc.) are more likely to be correct.
What is needed is an efficient method for encoding and mapping a digital sequence into a sequence of signal values, and decoding the received signal values into a corresponding true digital sequence before encoding at the transmitter side, using a (22p)QAM configuration (p=2, 3, 4, etc.) for the I and Q components. This method should allow different bits in a digital representation to be protected and transmitted differently, if desired, to take account of the differing likelihoods that each bit will become corrupted by noise and other perturbations in the transmission channel.